package it.polimi.politics.web.beans;

import java.util.ArrayList;
import java.util.List;

import it.polimi.politics.dto.PartitoDTO;
import it.polimi.politics.dto.UtentiDTO;
import it.polimi.politics.managers.ElezioniManager;
import it.polimi.politics.managers.PartitoManager;
import it.polimi.politics.managers.UserManager;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;

@ManagedBean(name = "votoBean")
@RequestScoped
public class VotoBean {
	
	@EJB
	private UserManager userMgr;
	@EJB
	private PartitoManager partitoMgr;
	@EJB
	private ElezioniManager elezioniMgr;
	
	private String[] 		 selectedPolitici; 
	private List<String> 	 politiciPerVotazione;
	private List<UtentiDTO>  listaUtenti;
	
	private String idCorrente;
	
	@PostConstruct
    public void init() {
		
		idCorrente = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");	
		
		listaUtenti 		 = new ArrayList<UtentiDTO>();
		
		politiciPerVotazione = new ArrayList<String>();
		String idpartito = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
		
		int id = Integer.parseInt(idpartito);
		
		listaUtenti = partitoMgr.getUtentiPartito(id);
		
		for (int i=0; i<listaUtenti.size(); i++){
			String	   nome = listaUtenti.get(i).getNome();
			 String	cognome = listaUtenti.get(i).getCognome();
			 String	nomecognome = nome+" "+cognome;
			politiciPerVotazione.add(nomecognome);
			}
		
		
		}
	
	
	 public String[] getSelectedPolitici() {
	        return selectedPolitici;
	    }
	 
	    public void setSelectedPolitici(String[] selectedPolitici) {
	    	this.selectedPolitici = selectedPolitici;
	    }
	    
	    
	   
	    public List<String> getPoliticiPerVotazione() {
	        return politiciPerVotazione;
	    }
	    
	    public void setPoliticiPerVotazione() {
	    	String idpartito = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
	    	int id = Integer.parseInt(idpartito);
			setListaUtenti(partitoMgr.getUtentiPartito(id));
			
			for (int i=0; i<listaUtenti.size(); i++){
			 String	   nome = listaUtenti.get(i).getNome();
			 String	cognome = listaUtenti.get(i).getCognome();
			 String	nomecognome = nome+" "+cognome;
						politiciPerVotazione.add(nomecognome);
			}
	    }

		public List<UtentiDTO> getListaUtenti() {
			return listaUtenti;
		}

		public void setListaUtenti(List<UtentiDTO> listaUtenti) {
			this.listaUtenti = listaUtenti;
		}
	    
	    public String creaVoto(){
	    	int id = Integer.parseInt(this.idCorrente);
	    	PartitoDTO part = partitoMgr.getPartitoDTO(id);
	    	elezioniMgr.creaVoto(part, selectedPolitici);
	    	return "index?faces-redirect=true";
	    }
	    
	    
}
